Many, if not most, electronic devices in use today have installed thereon some type of software for facilitating operation of the electronic device. Such software may include operating systems, such as the Windows operating system by Microsoft Corp. of Redmond, Wash. Such software typically also includes application software that executes over the operating system and provides additional device functionality, such as the Office software also by Microsoft Corp. Incremental changes to such software (the operation system and/or application software) are often made by the software developers to provide improvements, address deficiencies, or for other reasons. These changes are commonly propagated to the user of the software over wired or wireless networks so that the user may revise their software with the latest software upgrades provided by the developers.
While certain mechanisms for updating software on an electronic device are currently available, substantial disadvantages can arise for certain known methods in that they tend to be a one-size-fits-all approach that does not take into account the nature of the device that is being updated in terms of the problems, pitfalls, inconveniences, and even dangers that can arise for that particular type of device. For example, many such known software updating mechanisms are typically implemented in environments whereby the electronic device is either constantly connected to a reliable power source (e.g., a desktop computer connected to an AC power source) or may easily be connected to a reliable power source via minimal user interaction (e.g., a user may plug a portable electronic device such as a smartphone into an AC power source). Modern day techniques, however, have yet to consider much less address environments whereby the electronic device has limited access to power and users may be significantly hindered in providing reliable access to power. Even though electronic devices may exist in such environments, like their power-satisfied cousins such devices may similarly derive various benefits from reliably receiving and installing software updates. While one or more of the embodiments described hereinbelow have been found to be particularly advantageous in the context of a network-connected thermostat designed to control an HVAC system, it is to be appreciated that the scope of the present teachings is not so limited, and can advantageously be applied across a broad array of smart-home devices in which one or more similar issues may be faced.